package email;

import java.util.Date;
import java.util.Properties;

import javax.mail.*;
import javax.mail.internet.*;

public class SendEmail  {      
/**    
  * 以文本格式发送邮件    
  * @param mailInfo 待发送的邮件的信息    
  */      
    public boolean sendTextMail(MailSenderInfo mailInfo) {      
      // 判断是否需要身份认证      
      MyAuthenticator authenticator = null;      
      Properties pro = mailInfo.getProperties();     
      if (mailInfo.isValidate()) {      
      // 如果需要身份认证，则创建一个密码验证器      
        authenticator = new MyAuthenticator(mailInfo.getUserName(), mailInfo.getPassword());      
      }     
      // 根据邮件会话属性和密码验证器构造一个发送邮件的session      
      Session sendMailSession = Session.getDefaultInstance(pro,authenticator);      
      try {      
	      // 根据session创建一个邮件消息      
	      Message mailMessage = new MimeMessage(sendMailSession);      
	      // 创建邮件发送者地址      
	      Address from = new InternetAddress(mailInfo.getFromAddress());
	      // 设置邮件消息的发送者      
	      mailMessage.setFrom(from);      
	      // 创建邮件的接收者地址，并设置到邮件消息中      
	      Address to = new InternetAddress(mailInfo.getToAddress());      
	      mailMessage.setRecipient(Message.RecipientType.TO, to);      
	      // 设置邮件消息的主题      
	      mailMessage.setSubject(mailInfo.getSubject());      
	      // 设置邮件消息发送的时间      
	      mailMessage.setSentDate(new Date());      
	      // 设置邮件消息的主要内容      
	      String mailContent = mailInfo.getContent();      
	      mailMessage.setText(mailContent);      
	      // 发送邮件      
	      Transport.send(mailMessage);     
	      return true;      
      } catch (MessagingException ex) {      
          ex.printStackTrace();      
      }      
      return false;      
    }   
}    